package com.ztgf.shopping.models.service.template;

import com.baomidou.mybatisplus.service.IService;
import com.ztgf.common.constant.Result;
import com.ztgf.shopping.models.bo.template.TempletInfoSaveBO;
import com.ztgf.shopping.models.bo.template.TempletModuleBO;
import com.ztgf.shopping.models.dto.template.TempletInfoDTO;
import com.ztgf.shopping.models.dto.template.TempletModuleDTO;
import com.ztgf.shopping.models.vo.template.TemplateHomePageOrderCountVO;
import com.ztgf.shopping.models.vo.template.TemplateInfoDVO;
import com.ztgf.shopping.models.vo.template.TempletInfoVO;

import java.util.List;

/**
 * <p>
 * 模版  服务类
 * </p>
 *
 * @author YUE
 * @since 2020-05-23
 */
public interface ITempletInfoService extends IService<TempletInfoDTO> {
    boolean add(TempletInfoSaveBO templetInfoSaveBO);

    boolean deletePlateActive(Long id);

    TempletInfoVO getPlatformTemInfo();

    TempletInfoVO getPlatformActiveTemInfo();

    TempletInfoVO getDefaultShopActiveTemListByShopId(Long shopId);

    TempletInfoVO getDefaultShopTemListByShopId(Long shopId);

    //List<TempletInfoDTO> getShopTemListByShopId(Long shopId);

    Result createActiveTemplate(List<TempletModuleBO> templetModuleBOList, String name, String skipUrl);

    TempletInfoVO getShopDecorationInfoByShopId(Long templateId, Long shopId);

    TempletInfoVO getPlatformInfoByTemId(Long templateId);

    TempletInfoVO getPActiveInfoByTemId(Long templateId);

    List<TemplateInfoDVO> getListPlatformTemByType(int type);

    List<TempletModuleDTO> getListPlatformTemInfoModule();

    Result issuePlatformTemplate(List<TempletModuleBO> templetModuleBOList);

    Result issueActiveTemplate(List<TempletModuleBO> templetModuleBOList,String name);

    Result issueShopTemplate(List<TempletModuleBO> templetModuleBOList);

    List<TempletModuleDTO> getDefaultListShopTemInfoModule(Long shopId);

    List<TempletModuleDTO> getListTemplateModuleById(Long templateId);

    List<TempletModuleDTO> getListPlatformActiveTemInfoModule();

    List<TempletModuleDTO> getDefaultListShopActiveTemInfoModule(Long shopId);

    void createDefaultTemplateByShopId(Long shopId);

    Result getTemplateDecorationByTemplateId(Long templateId);

    /**
     * description: 商城首页用户订单状态统计
     * param: [ShopId]
     * author: chenyu.wang
     * date: 2020-07-31
     * return: com.ztgf.shopping.models.vo.template.TemplateHomePageOrderCountVO
     */
    TemplateHomePageOrderCountVO getHomepageUserOrderStatusStatistics(Long shopId);
    
    /**
     * @Description: 删除活动页模板
     * @Author: chenyu.wang
     * @Params: [id]
     * @Date: 2020.12.21 09:38
     */
    Result deleteActivityPageById(Long id);

    Result savePlatformHome(List<TempletModuleBO> list);
    Result editPlatformFinancial(List<TempletModuleBO> list);
    Result insertPlatformFinancial(List<TempletModuleBO> templetModuleBOList, String name, String skipUrl);
    Result delPlatformFinancial(Long id);
    Result savePlatformFinancialDefault(Long id);
}
